Problema al mostrar lecturas en un LCD

Hola muy buenas,
Tengo un problema a la hora de mostrar las lecturas de cualquier tipo de sensor, me explico:
Ahora tengo un programa cargado en el que un sensor de ultrasonidos hace que un led y un zumbador parpaden mas rapido o despacio dependiendo de la distancia, tambien que envie esa distancia a la pantalla LCD 16X2.

El problema es que las lecturas me aparecen de izquierda a derecha ej: (dist=5___cm.) donde (·"___") son espacios vacios, cuando paso de 10 cm ej: (dist=18__cm.) al volver a bajar por debajo de los 10 cm el segundo numero se queda grabado ej: bajo a 4 cm. y este es el resultado (dist=48__cm)

Esto me ocurre cada vez que quiero mostrar una lectura e visto que a otras personas les aparece algo asi (dist= ___5cm.) si fueran 145cm asi (dist=_145cm.) y segun baja la lectura el dijito izquierdo desaparece.

A otras personas les queda asi (dist=5cm.) y segun suve la lectura esta corre hacia la derecha (dist=15cm.) , (dist=150cm.)
y segun baja la lectura esta corre hacia la izquierda quedando como el primer ejemplo de este modo (dist=5cm.)

E comprobado que la pantalla esta conectada correctamente segun el fabricante y desconodco la causa del problema
Estoi dudando si el problema es del LCD si alguien podria decirme que esto no es normal lo agradeceria, por que tengo un prollecto donde la pieza fundamental es el LCD y con este problema estoi totalmente bloqueado =(.

Un saludo, espero que alguien me pueda ayudar

 lcd.setCursor(10,0);
 lcd.print(distancia);

 lcd.setCursor(14,0);        
 lcd.print("cm.");

Despues de estar investigando un poco por los foros y despues de provar varias posivilidades, e dao con una solucion un poco ortopedica :~ pero es luky asique si nadie tiene una solucion mejor¿?¿?¿?¿?

E optado por hacer lo siguiente:

 lcd.setCursor(10,0);          //mostramos datos en lcd 
 lcd.print(distancia)-1;

 lcd.setCursor(13,0);         
 lcd.print("cm.");
 
 if (distancia <10){       //pregunto si la dist.es menor de 10
 lcd.setCursor(11,0);      //si es menor le pido que en la segunda posicion...
 lcd.print ('\32');        //me escriba un espacio
 }
 if (distancia <100){      //pregunto si la dist.es menor de 100
 lcd.setCursor(12,0);      //si es menor le pido que en la tercera posicion...
 lcd.print ('\32');        //me escriba un espacio
 }
 }

y le digo que me escriva un espacio porque no me reconoce '0' - NULL.

Lo que tienes que hacer, es borrar antes de escribir de nuevo...
Es decir...

Lcd.setcursor(a la posición de inicio de escritura);
lcd.print(".espacios en blanco del total de caracteres");
Lcd.setcursor( a la posición de inicio)
LCD.print( medida);

Creo que como dice el compañero tienes que borrar pero es mas simple creo poniendo solo un: lcd.clear(); // Borramos todo el contenido del LCD. o tal vez lcd.noDisplay(); // No mostraremos ningún carácter en el LCD.