An aircraft’s ADS-B transponder is transmitting the position from the onboard flight computer, which in most modern aircraft comes from GPS data and is very accurate. 

On some older aircraft (for example some older A300, B737, B757, B767, and RJ100) the position is calibrated on the ground before take-off and after that, the current position is calculated based on the speed and direction of the aircraft. 

When flying for some time, in wind or in circles, the calculation becomes increasingly worse, which at landing can give position calculations that are up to 10 km incorrect.