You shouldn't have much in the way of bounce if at all.
Bounce is usually a feature of mechanical switches.
If you take the logical and of your A & B data stream (Schmitt or op amp conditioning is good) and sample the B stream on the or preferably very shortly after the falling (trailing edge) you can then use the value of the B stream to indicate direction ie 1 = one way, 0 = the other and the pulse you used for the sample is your clock.
similarly you can do the same trick with the not or inverse of A OR B and sample the falling (Trailing edge) of A to get the same.
If you add both techniques together you actually get twice the resolution of using just one or the other.
Sketch the waveforms out on paper and you will see what I mean.
Where you have microcontroler ports that will generate interrupts on a change the whole thing is very easy to implement in microcontroler code once you use the above techniques and uses very few components.
AKA47
Necessity hopefully becomes the absentee parent of successfully invented children.