Subtracting 1000 until you've gone to far, then subtracting 100 until you've gone to far, is the obvious way to do it but needs quite a bit of 2 byte math.
I tried to find a best way a few years ago, the best I came up with is looking at the first few binary bits one at a time. For a 12 bit binary, if bit 11 (2048) is set, you set the value 2 bit in the decimal 1000s, nothing in the 100s, value 4 bit in the 10s and value 8 bit in the 1s, the same can be done for the next binary bit 10(1024), before you have to start adding values into the decimal bytes. The last 5 binary bits can all be added into the decimal 1s. The decimal bytes then look something like 1,5,22,34 but fixing the few over tens is easy in 1 byte math.
The 12 bit (0-4095) version is 67 bytes and 80 CLKs, I don't think it can be done much faster.