Current Sensor ACS714 Wandering Values

The other thing to do, is to check what voltage the device is outputing, when there is no current in it.
You can do this with your digital multimeter without connecting the arduino at all.

Suppose the device actually outputs 2.6 V instead of the 2.5V you are apparently expecting.

This will correspond to a count of 530 instead of 512 from the analogRead() function.

So where you calculate the current with the code

current = ( analogVal - 512 ) * scaling_factor

then just replace the 512 by 530 in the above equation, and the offset problem is solved, assuming that the
error is persistent and non-varying.