We have similar code (admittedly not exactly the same code) which runs on the KL03 and the KL17. All ADC conversions appear to work on the KL17. However, on the KL03 we occasionally see 0x0fff read (about 10% to 20% of the time).
We can work around this problem on the KL03 after considerable efforts are made to avoid taking an ADC conversion during the execution of code driven by PORTB interrupts. No such efforts have been necessary when similar code is run on the KL17.
The code driven by the PORTB interrupt also uses the KL03 TIMER1 interrupt and also adjusts the processors speed in order to conserve power.
We have burned though many ideas of why this happens. One of the few options left it so accuse the KL03 design of hardware defects. But before doing that, I thought I would solicit any additional ideas from this community of users.