Finite differences does indeed have stability issues, and even if you apply some tricks will only give you about half float precision