Just keep the motors (and their wires) well away from the magnetometer
We did
The compass datasheet recommends that high current traces (>10mA) be
it least a few cm's away. We also twisted the wires going from the PCB to the motors.
Funny you should mention stray fields. The OLED that I placed directly above the
compass (no other space available) had a speaker on it
I thought it was a ceramic
buzzer until my compass reading never changed. Since this app didn't need a buzzer or a speaker I removed it from the OLED.
(* jcl *)