There are two ways to solve this problem. The most prominent problem is that it appears you need to increase the number of samples in your render settings (Render > Sampling > Samples). There are two values, respectively, the render and the preview samples. The default for rendering is 128 samples, and that is way too low to use in any render. The sample number is the number of paths to trace for each pixel. The higher the number, the more clear and less fuzzy your render will be, but the longer your render time will be. I would recommend changing that number to 1500 to start, and keep increasing it until you find a good balance between quality and render time.
If the above method increases your render time too much, you can try the denoiser (Render Layers > Denoising). The radius is the "sample size" and that can stay at default for the most part. The strength is the amount of denoising. Enabling denoising will allow you to reduce the number of samples, and save you some render time. I personally don't use denoising too much, as it can reduce the overall detail of your render. However, it can be a lifesaver if you don't have a beefy computer.
So basically, find a balance between render samples and the denoiser (optional) to find a quality that you like with a reasonable render time.
To learn more: