I collected some experience with that using a NiboBee robot, which also uses two motors, two driven wheels and rotation sensors on both motors. SO what I've learned should also apply to the Lego System as well.
Basically, exact movements using the shipped sensors (inside the motors) are impossible, because:
- The wheels slip always a little. The problem is larger on carpet floor compared to laminate or PVC.
- If the software detects that the destination position has been reached, the motor must stop immediately. This is technically impossible because of the mass inertia. Even if you manage to stop the motors exactly, the robot would slip a little.
The biggest problem is, that the amount of error is random.
So, whatever you want to do, you need to include enough tolerance for incorrect movements. You could mark the path with black tape on the floor and find or follow these marks. I saw this solutution in an industrial production hall where robot-cars have been used to transport things from the store to the work-places.
Another solution could be a set of optical markers that the robot can use to detect his own position. I saw this on a field outside, where a tractor distributed semen automatically.