Como en cualquier lectura de un sensor, yo te recomendaría que hicieses varias lecturas y calculases una media para obtener el valor "resultado" con el que vas a trabajar.
Como te han dicho, lo más importante de ese código es que quites el delay y no utilices ninguno, ya que eso "para" la ejecución del código y dejas sin control el robot durante ese segundo. Si quieres ver como hacer una temporización sin delays, hay un ejemplo en el IDE "blink without delay" donde lo importante está en:
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
// save the last time you blinked the LED
previousMillis = currentMillis;
// Codigo que se ejecuta cada "interval" de tiempo
}
En cuanto al motor, no dices que tipo de motor utilizas ni como lo has conectado, con lo cual no se sabe si lo estás controlando bien o no.
Como te dije en el primer post, si ese es tu robot, antes de montar todo deberías haber ido probando cada cosa por separado para saber como controlarlas y después ir juntandolas y probandolas juntas. Si lo tienes todo montado y no lo has probado, ahora no vas a saber si el fallo está en el software o en el hardware, por no decir que no sabes como controlar cada una de las partes.