Generally SignalTap is not a continuous capture. (I don't know if there's some way to do that, but I've never seen it). Basically it's running along and capturing data in memory, all synchronous and all 100% accurate, assuming it's in the same clock domain as your logic and your design met timing. When the trigger occurs, it stores however much data you wanted captured before the trigger and then fills up the rest post capture and downloads to your computer over JTAG, but it stops capturing on that trigger and won't recapture new data on top of it until you tell it to. So it should be accurate and the ?jitter? is from somewhere else.
That's SignalTap's power, in that it gives bit-by-bit, cycle-by-cycle data that is accurate. Often that's so much information it's a pain to decipher, but it's all there.