Place navy beans, ham bone, and 10 cups of water into a large saucepan or Dutch oven. Bring to a boil over high heat, then reduce heat to medium-low, cover, and simmer until the beans are tender, from 1 1/2 to 2 hours. Meanwhile, bring a large pot of lightly salted water to a boil. Add pasta and cook for 8 to 10 minutes or until al dente. Drain, rinse with cold water to chill, then set aside. Once beans are nearly ready, heat olive oil in a Dutch oven over medium heat. Stir in onion and garlic, cook until the onion has softened and turned translucent, about 5 minutes. Stir in tomatoes, celery, carrot, red pepper flakes, and 1 cup of water; bring to a simmer, then reduce heat to medium-low and cook until the carrot has softened, about 10 minutes. While the tomato mixture simmers, remove the ham bone from the beans. Separate the meat from the bone; dice the meat, and discard the bone. To finish the soup, stir the beans, cooked macaroni, and diced ham into the tomato mixture; add additional water if needed to make a chunky soup. Season to taste with salt and pepper; simmer until the macaroni and beans are both quite tender, from 5 to 15 minutes. Stir in chopped parsley before serving.