You have a light load and a relatively heavy ball screw, but the screws seem fairly long. Are you seeing screw windup with fast acceleration? Ball screws have a large pitch, so it wouldn't take much torsional deflection to result in some axial motion that would appear similar to dynamic backlash. The other possibility I can conceive would be flexing in relatively long and unsupported ball screws. Either of these problems should be dynamic problems, causing following error when in motion, but not a loss of accuracy when the axis has reached a destination and come to a stop, and any twisting or bending of the ball screw has been eliminated. Are you seeing following error based on observations of cut quality, or are you measuring positioning errors where the commanded motion doesn't match the actual motion after the axis has stopped moving?
One trick for eliminating screw windup is to put an encoder on each end of the ball screw to measure the windup (difference between the two encoders) and compute the axis position based on the screw windup evenly distributed across the length of the screw. The farther the ball nut is from the motor, the larger the windup error. But I doubt your controls are up to that sort of ball screw windup compensation.
Of course, in an open loop stepper motion system, losing steps is always a possibility. More or less microstepping could help, or slowing the motion (probably not what you want to do), or more motor current, or bigger stepper motors. Occasionally, faster motion will prevent lost steps if the steady state speed results in harmonics the stepper motor doesn't like, and the ramp up and ramp down isn't in the harmonic zone long enough for the amplitude to build to a level that causes missing steps.
Apparently, I didn't build that!