How to correctly quote `adb shell su -c`
The best solution would be to use single-quotes (') around the subcommand:

adb shell 'su -c echo "a  b"'


But please note that usually within single-quotes everything is taken literally and variables are not expanded. This doesn't apply when you nest quotes like this. As an example:

myvar='123'
echo "$myvar"   # prints 123
echo '$myvar'   # prints $myvar


But: (assuming $myvar is set to '123' within the adb shell (e.g. on phone))

adb shell 'su -c echo "$myvar"'    # prints 123


In case you want to use your own shell variables to be included within the adb subcommand, you can simply flip around the quotes:

myvar='test'
adb shell "su -c echo '$myvar'"    # prints test