When mapping symbols of various modulation constellations, Gray code is used such that - each adjacent symbol only differs by one bit. Why do we want small physical changes in the signal to correspond to small changes in the symbol ? Why not use binary mapping ?
Because of noise and channel distortion.
Any noise or distortion would result in a change in amplitude and phase of receiving symbols. So for instance in 16-QAM with 4-bit words, if an amount of distortion causes a symbol to place in the adjacent room, we will have only one bit error while other 3 bits are ok. In this case if we use binary sequence, the same amount of distortion could end up more losses, even the all bits of the symbol.