There will be no 'creep'. As long as you are sampling 'faster than the quadrature rate' there will always be exactly one differing edge at any one sample. If the sampling is 'dithering' on one edge, then the count will keep going up and down by one, but it CANNOT creep sampled this way -- and that is the fundamental advantage of this approach. Now the question of 'debounce' --- what does this quadrature 'do' and what are the effects of 'bounce' -- so, for instance, if it just scrolls up and down a menu, then the exact 'bounce' as it flies up or down during a step is of no matter, only where it stops. Now this assumes that your mechanical input device has a 'detent' that helps it 'rest' between quadratures, so that once 'let go' the inputs are assured to 'settle down'. If not, then no 'debounce' will ever stop that last jitter, One thing you can do is 'squelch' any change <2 until stable >50ms. Now this all assumes you are looking to count all four quadrature edges. We had one case where the 'dial encoder' had detents all right, but they were AT one of the signal-change points. So one option there (as we chose) is to treat that input merely as a 'direction indication' in your samples, and only 'count' on changes of the other input (using the direction indication then to say whether rising is 'up' or 'down' in count, and vice-versa). Half the counts/rev, but at least stable!