you may find that you could insert a %DO loop inside the macro where you want to do some looping. 
Alternatively you can create a wrapper macro that will derive the value you want to supply and then call your %prog_iter. Something like this untested code:
 
%macro looping( from_value= 0, to_value= 1, by_val= .01 );
%* but because simple old sas macro iterative %do from/to/by looping expects integers, ...;
%let this val = &from_val ;
%do %while( %sysevalf( &this_val LE &to_val ) ;  
%prog_iter(  k= &this_val ) 
%let this_val = %sysevalf( &this_val + &by_val ) ;
%end ; 
%mend  looping ;
which you could invoke with
%looping( from_value= .01, to_value= .9, by_val= .015 )
  
but be very careful before extending the use of this %looping to negative &by_val 😉
 
peterC