You don't say how much difference. I am thinking that's it's a mechanical / steps per unit issue............
The axis system ( ie; say motor, rack or screw may not be linear...can even be different going the opposite direction ) steps per unit may vary
and you have set them based on some distance.
I would set up an indicator, run gcode for around a circle ( four arcs), put a pause in at say the 90 degrees and look at the difference.
You can only do so much to refine the steps per unit and that would be a comprimise of small to large movements.
If things were perfect, like exactly matched axis systems with the same steps per unit, no backlash etc., then the combined movements would be
produce a perfect square or circle. So there is steps per unit ( lets say software setting ) and the mechanical side ( lets say the axis system / each axis component contributes to total ) which one or combination is not perfect .......only you can explore to find out. Depends on how anal you want to be about it all.......
RICH