The goal was to convert signal 0 - 5V centered around 2.5V. It was evaluation of better ADC for precise measurement instrument. AD7691 18-bit SAR ADC was chosen. Nice differential input, 250ksps, great linearity, low errors. I made gain calibrations (real output voltage vs adc measured voltage) for the instrument and the results were shocking. Upper 25% of range was bullshit ( stuck codes, missing codes, even codes that corresponds to 19bit ADC :) ) and measurement was not to be trusted. Hmm I have probably damaged internal circuitry by accidentally increasing VDD to 8V for short period of time. But changing ADC didnt help. Problem was elsewhere.
I have found one guy who dealed with similar behavior but without any solution
Visiting datasheet again I have found one funky value I wasnt checking during the design because I have expected common mode range to be 0 to VREF, but LOL it is VREF/2+-0.1V. This means that I cannot feed VREF/2 signal to negative ADC input, but negative copy of my signal centered around VREF/2 instead.
What is going on? Apparently there is a lof of types of ADC inputs, which you can and should study in the very nice document from LT: http://cds.linear.com/docs/en/product-selector-card/2PB_sarinputtypesfb.pdf, but be careful AD uses slightly different terminology.
Long story short AD7691 is true(fully) differential unipolar ADC and my signal was for pseudo-differential bipolar ADC or true differential with wide common mode ADC :-)
Solution was easy. Adding inverting "voltage follower" biased at VREF/2 (original signal is also biased at VREF/2). There are much nicer solutions but this was quick solution for very low frequencies, so it is OK.
Simulation says it works, common mode is in range.