Cut the potatoes into irregular chunks by inserting the tip of a small, sharp knife into a potato and twisting until a 1 1/2 chunk comes out. Repeat until the entire potato is cut up, then continue with the remaining potatoes; set aside. Alternately, roughly chop in 1 1/2 inch chunks. Peeling is optional. Heat the olive oil in a heavy 3-quart saucepan over medium heat. Add the almonds and garlic and cook, stirring, until golden, 4 to 5 minutes, adjusting the heat so the oil doesn't burn. Using a slotted spoon, transfer the almonds and garlic to a bowl to cool slightly. Add the ham to the pan and stir for 1 minute. Add the potatoes and cook, stirring, for another minute. Add the chicken stock and bring to a boil, skimming off any foam that rises to the surface. Reduce the heat to medium-low and simmer the soup. Meanwhile, place the almond and garlic mixture in a food processor and grind it. If you like almond bits in your soup, grind the mixture somewhat coarsely; otherwise, grind it fine. Add all but about 2 tablespoons to the soup. Season with salt and pepper to taste. Steep the saffron in a few tablespoons of the soup broth for 2 minutes, then add it to the soup. Simmer the soup, partially covered, until about half the potatoes have disintegrated, about 35 minutes. Skim the soup as it cooks if you like, and add a little more stock if the soup seems too thick. When ready to serve, check the texture of the soup. If you'd like it creamier, break up some of the potatoes with a sturdy spoon. Add the vinegar to the reserved ground almond mixture and stir it into the soup. Add the parsley and cook for a minute. Taste for seasoning, adding a little more vinegar if necessary. Serve the soup with bread.