I agree, it is almost always a small DC voltage on the signal line.
The DC changes with level and causes the pops.
Also known as zipper noise when you rapidly change levels.

It sometimes happens with some steps, not with others, that is because the effect is greatest with greatest steps.
For instance, going from -15dB to -16dB may involve engaging the -16dB relay and disengaging the -8, -4, -2 and -1 dB step relay.

Try to insert a capacitor between the signal and the input to the level control. If the pop is gone, it was the DC. Note that even a few mV can cause this!

If your relays switch to "ON" faster than to "OFF" (given the "ON" increases output), you could get much more pronounced "POP" than two controlled "POP"s at lower volume...
Needs to be checked first to be viable solution, i've seen such solution as the "POP"s fighting method.
This one could be good for "01111111"->"10000000" transition.
Alternatively you can use a binary code without rough "01111111"->"10000000" transitions such as... ehm i forgot his name. The one which for every numeric increment changes just one bit. Then rearrange the relays/resistors to support such binary code.