So, eventually we gained some light

! ADC is now a good boy that does its work!
There is a caveat that was not so easy to understand:
In the examples should be explicit this line of code:
ADCDAC->DAC_ADC_CONF |= MASK_DAC_ADC_CONF_ADC_EXT_VREF;
this enables the rail-to-rail reference.
If not enabled, you have a 0.33V -2.97 range which still corresponds to 0x000 - 0x3ff range ( 0d - 1024d ) and leads to a "bathtube" conversion: The center corresponds (1.65V set = 1.65 read), but has an error while going up and down.
Still, in rail-to-rail, you can see the very same phenomenon, but you can see it only near 0.1V or 3.2V, where the error is more explicit.
I
STRONGLY suggest to make it explicit in datasheet.
Ok, so let's see the DAC....