Hola halowin.
Con respecto a los censores, siempre hay alguno más eficiente, pero esto no quiere decir que lo tengas que usar. Un pulsador como método de saber cuando chocas contra un obstáculo, no es mala idea pero deberás saber utilizar.
Un pulsador, siempre genera una señal de rebote, esto es, cuando se pulsa, genera mucho ruido debido a que cierra el contacto y lo vuelve a abrir (por más que esté precionado). Esto es así, porque los contactos, no son eficientes. Este ruido, el PIC es capaz de leerlo y lo toma como múltiples pulsadas.
Para solucionar esto, lo que debes hacer es lo siguiente:
En el primer pulso recibido, llevar al CP a una espera de 50ms. En este tiempo puedes aprovechar al que el PC haga otro trabajo o hacerle consumir ciclos. De esta manera, una vez que el CP alla detectado el primer pulso y se dirija a otro sitio, no chequeará el puerto y así, no detectará otro pulso.