Disk read errors, especially with older disks can be a real problem. There are several reasons they occur and the good news is that sometimes it can be resolved.
One of the major culprits of disk read errors is for the drive heads to become dirty. This can especially happen as a result of using old disks (see below).
There are two ways to clean the heads, you can either purchase and use a drive cleaning kit or disassemble the drive and clean the drive heads using a lint-free cloth and some isopropyl alcohol.
You can also make your own head cleaner:
It may sound strange, but disks that haven't been used in a while can develop mold on their surface. The sad part about this is when you put them in the drive the will make the heads dirty so you'll need to clean that too. This video tries several different methods to see what works best:
To clean the disks surface you'll need something like this to hold the shutter open while you rotate the disk and clean it. This design is good because it allows both sides to be cleaned more easily.
The MOST important thing about either method is to make sure the disk is completely dry before using it in the machine. If the disk is even damp then it won't spin properly.
In future, try to store your disks with a pack of silica gel just in case!
Some disks, especially the later ones were created using a cheaper process, and as such, some of these disks have started to deteriorate such that the physical surface of the disk is coming off.
Sadly these are probably unrecoverable so I would advise trying to grab off them what you can. They may make the drive head dirty, they might clean using the above approach, it just depends exactly how they have degraded. The chances are the drive head may wear away the surface that has the magnetic data in it.
If you are reading/writing disks using my Arduino Reader/Writer design and you are NOT using an FTDI converter for reading OR writing disks (including on the UNO!) then this is the first thing you should change. See FTDI vs CH340 (and the Arduino UNO converter).
Secondly, if you are powering your drive from the USB port it may be getting insufficient power to run correctly. An external 5V (and possibly 12V) power supply should be added. Be sure to connect the GND from the external power supply to the GND used by the Arduino.