Actually no, I haven't been able to find any articles on that type of smoothing. Perhaps because it is very simple.
The input has a corresponding "smoothed value" variable, which has several more bits of resolution than the raw value; these bits are called "remainder bits".
New raw values coming from the ADC are incorporated into the smoothed value variable by calculating 15/16ths of the old smoothed value and adding 1/16th of the new value, although there are several tricks to simplify the calculation and avoid most of the bit-shifting.
In this application, with 12-bit raw values and a 16-bit MCU, you would use four remainder bits, so the smoothed value would have 16 bits allocated like this:
Code:
F E D C B A 9 8 7 6 5 4 3 2 1 0
s s s s s s s s s s s s r r r r
The top 12 bits are the smoothed equivalent of the raw value, and the bottom four bits are "remainder" bits.
The incorporation calculation would implement the 15/16ths and 1/16th calculations. You can of course use other numbers of remainder bits; three remainder bits gives 7/8ths old plus 1/8th new, which gives less smoothing than four remainder bits, and you can use more than four remainder bits for heavier smoothing.
Edit: If you perform any calibration by offsetting or changing the scaling of the raw value, you should do this before the smoothing is applied. The smoothing can give you more bits of resolution than the ADC actually has.
The implementation can be a bit messy so I won't get into details. There are many other approaches to smoothing noisy ADC conversion data if that is required. Have a look at these Wikipedia pages:
https://en.wikipedia.org/wiki/Smoothing
https://en.wikipedia.org/wiki/Digital_filter
I'm afraid I don't understand the rest of your post.