Yeah, that should do it. You only need a single channel, and you need it to be, at the very minimum, 16 bits. Single is 32bit floating point, so that should be good. Right now you're just using 8 bits.
Note that floating point render targets require point sampling when you sample from them, but that shouldn't be an issue in your case.