Problemas con las entradas analógicas al leer tension

Hola, tengo un problema con las entradas analogicas al leer valores de tension.
En mi proyecto debo registrar la tension que le llega a un motor dc, mediante un circuito de proteccion (diodo para evitar la autoinduccion y divisor resistivo para prevenir que al arduino lleguen mas de 5V) saco un pin a una A0.
Al enviar 0V al motor, la lectura analogica esta en 1005.
Probe desconectando la entrada e igual arroja valores muy altos distintos de 0
Aca hay parte de mi codigo donde hago tal medicion

int TENSION_2 = A0;
int TENSION_1 = A1;
int TENSION_BATTERY = A5;

 tensionmotor1 = analogRead(TENSION_1);
   // float voltagemotor1 = tensionmotor1 * (7.0 / 1023.0);
    Serial.print("Tension motor 1: ");
    Serial.println(tensionmotor1);

    tensionmotor2 = analogRead(TENSION_2);
   // float voltagemotor2 = tensionmotor2 * (7.0 / 1023.0);
    Serial.print("Tension motor 2:");
    Serial.println(tensionmotor2);

    tensionbattery = analogRead(TENSION_BATTERY);
   // float voltagebattery = tensionbattery * (8.0 / 1023.0);
    Serial.print("Tension bateria:");
    Serial.println(tensionbattery);

El problema lo tengo en las tres lecturas, en la explicación lo reduje a una para hacerlo mas sencillo.
Gracias.

Todo muy bien pero sabemos que el Arduino mide bien, pero sería bueno que tu hicieras un esquema electrónico aunque sea a mano alzada para entender como son las entradas.
Hablas de un diodo y un divisor de tensión, eso debería funcionar bien!!

Puedes dar valores?
Intenta colocar un pequeÑo capacitor electrolítico que amortigue los cambios por si tienes picos de tensión.
Algo de 1 a 10uF como para empezar a probar.