Denoising Animations in Cycles
The default denoise options currently offered in blender (AI, Optix and the original blender denoiser) produce jittering because they do only Spatial Denoising, meaning that they use only one frame for input, so all images are denoised separately. The main problem with this approach is that noise patterns might not be consistent or homogeneous from one frame to the next. Sometimes this kind of denoising might actually create more problems than using no denoising at all.

Edit
For proper temporal denoising in blender read:
How to denoise animations using Blender&#39;s Temporal Denoiser?

In case of animation, you could also use denoise tools created specifically for video. Those tools not only can do Temporal Noise Reduction, by analysing several frames to understand how noise is transforming from frame to frame, but also use some spatial noise reduction as well.
Some suggested tools:
Neat
This denoiser can remove noise from video sequence, and it uses information from neighboring frames to denoise images. The best use for this plug-in - render animation without denoising, then remove noise from sequense in Natron (for example). Unfortunately, this Ofx plugin is commercial.
Deflicker
This Ofx  plug-in can remove jittering from denoised sequence. Instead  Neat, it can not remove noise, only flickering. As Neat, this plug-in can work in Natron and, unfortunately, it is also commercial.
Resolve
This video editor also has sophisticated noise reduction tools (only in studio version) and it is also commercial.