As far as I can see the problem has nothing to do with matlab expertise but is a failure in your logic.
You create a folder name, which would be better achieved with:
k = ...
path = 'C:\Users\...\';
foldername = fullfil(path, sprintf('prova%02', k));
Then you create another name with different formatting in the variable named prova. The above code will generate the name c:\Users\....\Prova01 for k = 1, whereas prova will be Prova1. Note the missing 0. You then forget about that foldername and mkdir that Prova1. Since prova is not a full path, it will be created in the current folder, whatever that is, most likely not path.
So, in addition to creating a folder with the different name you intended, you also create it in a different location. So, it's not surprise that when saving your figure, matlab tells you: sorry, that folder doesn't exist.
would probably solve the problem. There's never any need for that prova variable.
While we're at it, it would be clearer if you created picturename as:
picturename = fullfile(foldername, '1.jpg');