The 19-year-old moves to Selhurst Park as a free agent after his contract at Championship side West Brom expired.
Ferguson joins Palace on a three-year contract.
The defender said: "It's great to be here. Crystal Palace is a great club in my opinion, and I feel like there's a lot that I can bring to the team. I'm so happy to be here and I can't wait to get started."
Chairman Steve Parish said: "Nathan is a fantastic signing for us, a player we've been committed to for a long time. He is hungry, focused, has a great attitude and he's got an abundance of talent. It's been a challenging six months for Nathan, and I'm genuinely so pleased for him that we have finally secured his services."