compass HMC6343 interface to arduino

I interface a compass HMC6343 to arduino and i read the result through the serial with no problem, but when connect the motors to arduion in the same time with the compass the reading was wrong, is this becuase of interfernace? and if it is yes. how i can solve it?

how i can solve it

Move the motors away from the compass.
Make sure no wires carrying heavy current pass near the compass.
Put a mu-metal shiled around the motors.