You almost never need to deal with the binary UTF-8 encoding in Vim (or indeed, almost anywhere, including programming languages); for the most part you can just forget it exists as Vim takes cares of all of that for you: you just need to deal with the Unicode codepoints.
You can think of Unicode codepoints as the "human interface" and UTF-8 as one of several technical implementations. It's roughly similar to files on your disk: you use the same tools to create, edit, copy, and move files, and you don't deal with the filesystem format directly (ext4, NTFS, FAT, etc.) UTF-8 is like the filesystem.
At any rate, the codepoint for the non-breaking space is
U+00A0, so you can just use that, as you already discovered:
You can leave our the two leading zeros, although you can also include them if you want.
In this case it may look confusing since
0xc2 0xa0 look kinda similar, but this is just an artefact of how UTF-8 encodes things (it's actually quite clever in many ways; the Wikipedia page can probably explain that better than I can).
See the Unicode code point of the current character may also be useful. If you want a CLI tool to know which codepoints are in a file then I actually wrote a little tool for this; here's a web demo for your specific example.