I have to explain it better.
The mouse driver works internally in pixel coordinates on all modes. If you read the Mouse driver system variables, 184 to 187 you will be returned with the coordinates on the pixel grid.
But on text modes the pointer moves by character boundaries, and the driver converts on the fly the pixel coordinates to rows and columns, dividing X and Y by 8(or 16) and 18. Only absolute numbers are allowed, so it can be that some pixel coordinates on very short distances, lower than 8 or 9 pixels, give odd values.
As I said before, trying to correct this will lead to more complex routines that would waste more time than the saved.
But with a mouse controller this "error" is unnoticed, the movement of the pointer is more natural than with a joystick, because diagonals don't have always 45 degrees like on digital controllers.