Don't use floats. I kept ralPos a float as it's a bit easier. Just to give you the idea:
float realPos = 0; //Real position
unsigned long stepSize = 796; // micro meters
unsigned long stepsPerMeter = 1257;
void setup()
{
Serial.begin(9600);
for (unsigned long i = 0; i < stepsPerMeter; i++)
{
realPos += stepSize;
}
Serial.print(realPos / 10000, 6); Serial.println(" centimeters");
Serial.print(realPos / 1000000, 6); Serial.println(" meters");
}
void loop()
{
}
Result:
100.057197 centimeters
1.000572 meters