I seem to have found a solution (for now at least):
Setting the delay for the listeners to SENSOR_DELAY_UI from SENSOR_DELAY_FASTEST has made the output smooth (I know, right?). My guess is that this is due to delays on the thread at such a high polling rate.