Debouncing switches?
Since micro switches feature pretty heavily in a lot of robots - I think, as bumpers, limit indicators, toggles and all that, it might be useful to extend the discussion to debouncing too?
So I gather the problem occurs as the switch is “settling” into place - there’s micro contacts made and broken over the timescale of a few to ~10ms. Such as:

Here, the time interval is about 0.2ms, the whole event takes 1.3 ms.
(from http://www.ganssle.com/debouncing.pdf)
As I understand it, there are two approaches to debouncing a switch 1. Hardware and 2. Software.
The hardware approach involves including a low-pass filter in paralell with the switch. The relative advantage of hardware debouncing is that you conserve cycles, the disadvantages include an increased component count, and some inflexibility if modifications are needed. In my opinion, the big plus for hardware is just that it's more elegant... well, I reckon anyhow. - whatever that means.

A hardware debounce circuit might be something like this on the right. Since caps charge and discharge according to exponential function, the dis/charging rates are given by the two equations.
values of R1 and R2 re chosen depending on the triggering voltage of the IC pin. With the switch open, the cap is charging according to (R1+R2)*C, with the switch closed, the cap discharges according to R1*C. Depending on how fast you want the switch to trigger, and depending on how immune the switch is to jitter, R2 can be something like R2=20k, C = 1uF. For a threshold voltage of Vth~2.5V and a V of 5, this gives a time of t~-ln(2.5/5)*20e+3*1e-6~10 ms. It's easy to vary, with different values of R2 and C - choosing the cap value first might be the easiset place to start (once you've chosen a delay time of a few ms or 10's of ms).
The rise time (switch released) is a funciton of R1+R2, so for a going-high trigger voltage of v/2=2.5 Vsomething like R1= 10K gives a rise time of:
-ln(1-2.5/5)*(10e+3+20e+3)*1e-6=20ms.
Adding a schmidt trigger at the IC pin with some hysteresis will convert the exponential-shaped pulse to a step function. I'm not sure that's absolutely necessary if it's interfacing with a uC, because the uC essentially does this anyhow - the only difference is the lack of hysteresis in the uC, so you have to be more careful in choosing R1 and R2. If a schmidt trigger is used, I believe it's possible to dispense with R2 completely - I personally don't think there's much to gain in simply replacing one resistor+cap with a larger IC.
Other debounce systems include the use of two AND gates, but that's a bit fancy and adds a big fat IC to your board that you have to pay for/power up etc..
The software alternative is to poll (or interrupt, if you like candy) the switch, then gosub a short delay routine that checks the switch again after a ~10ms delay. This has the exact effect of the circuit, except that your uC is now busy worrying about a switch, and not much else. I really don't like this option so much.
Erm, I think that's all the detail needed from me. Feel free to correct me if I have things wrong.