Hello,
Regarding your first question for the data fluctuation, that is a normal behavior a sensor has,
but you can change the way you get an interrupt, using a threshold interrupt (for FXOS8700CQ) so the event is detected when all of the enabled axes are below or equal to their respective threshold values, or when any of the enabled axes is above or equal to their respective threshold value (OR condition), you can check this out at the datasheet "14.16 Magnetometer threshold function registers" .
Also I suggest you the check the application note AN4458 "2.2 Magnetometer vector-magnitude function" for the FXOS8700CQ [https://www.nxp.com/docs/en/application-note/AN4458.pdf]
As for your second question unfortunetly , the MAG3110 does not have an interrupt when the change of the magnetic field is above a threshold, for this purpose I suggest you use the FXOS8700CQ.
Sorry for the late response, but your question was answered through email.