How to stop a job for the rest of the day after the relevant condition has been satisfied once?
I actually wrote a similar tip at mssqltips.com. 
For your current case, the general idea would be like this:


you may add an additional step at the end of the job, once your primary job steps succeed, the job will run the final step (i.e. the newly added step)
If your job fails in your primary steps, your job will just exit and no need to run the final added step.
In you final job step, you will do one thing, i.e. updating your job schedule' start date to be next day. 

use msdb

declare @active_date int, @sch_name varchar(128);

select @sch_name=s.name
from msdb.dbo.sysschedules s
inner join msdb.dbo.sysjobschedules js
on js.schedule_id = s.schedule_id
and js.job_id = $(ESCAPE_NONE(JOBID));

set @active_date = cast(replace(cast(cast(getdate()+1 as date) as varchar(10)), '-', '') as int);

exec sp_update_schedule @name=@sch_name, @active_start_date= @active_date;



Of course, I assume your job has one dedicated schedule only.
The approach is all self-dependent and you do not need any additional external jobs to manage your current job.