Sensor reading is chaotic when Arduino is powered by laptop unplugged
Sounds like a ground loop.

The laptop's DC output (-) terminal is connected to the earth pin of the plug inside the adapter. The problem is usually resolved by eliminating all other ground connections. Check if your Arduino is connected to any other device which is grounded, for example an oscilloscope.